﻿using System;
using System.Runtime.Serialization;

namespace Nikko.Framework
{
    /// <summary>
    /// 独自の例外クラスです。
    /// </summary>
    /// <remarks>
    /// 処理中に例外を発生させてアプリケーションを停止しない場合は、必ずこの例外を発生させるようにしてください。
    /// </remarks>
    public class WinFormsFrameworkException : Exception
    {
        /// <summary>
        /// NikkoFrameworkException クラスの新しいインスタンスを初期化します。
        /// </summary>
        public WinFormsFrameworkException()
        {
        }

        /// <summary>
        /// 指定したエラーメッセージを使用して、NikkoFrameworkException クラスの新しいインスタンスを初期化します。
        /// </summary>
        /// <param name="message" type="string">エラーを説明するメッセージを設定します。</param>
        public WinFormsFrameworkException(string message)
            : base(message)
        {
        }

        /// <summary>
        /// 指定したエラーメッセージと、この例外の原因である内部例外への参照を使用して、NikkoFrameworkException クラスの新しいインスタンスを初期化します。
        /// </summary>
        /// <param name="message" type="string">例外の原因を説明するエラーメッセージを設定します。</param>
        /// <param name="inner" type="Exception">現在の例外の原因である例外を設定します。</param>
        public WinFormsFrameworkException(string message, Exception inner)
            : base(message, inner)
        {
        }

        /// <summary>
        /// シリアル化したデータを使用して、NikkoFrameworkException クラスの新しいインスタンスを初期化します。
        /// </summary>
        /// <param name="info" type="SerializationInfo">スローされている例外に関するシリアル化済みオブジェクトデータを保持している SerializationInfo オブジェクトを設定します。</param>
        /// <param name="context" type="StreamingContext">転送元または転送先に関するコンテキスト情報を含んでいる StreamingContext オブジェクトを設定します。</param>
        protected WinFormsFrameworkException(SerializationInfo info, StreamingContext context)
            : base(info, context)
        {
        }
    }
}
